/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package estructurassa.controladores.PuntoDeEquilibrio;

import estructurassa.DTOs.DTOPuntoEquilibrio;
import estructurassa.controladores.Controlador;
import estructurassa.controladores.ControladorPrincipal;
import estructurassa.controladores.FabricaControladores;
import estructurassa.expertos.ExpertoCostosYProductoStandar;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Date;
import javax.swing.JInternalFrame;

/**
 *
 * @author Juan
 */
public class ControladorPuntoEquilibrio implements Controlador {

    PantallaPuntoDeEquilibrio pantalla;
    ExpertoCostosYProductoStandar experto;
    private boolean iniciado;

    public ControladorPuntoEquilibrio() {
        pantalla = new PantallaPuntoDeEquilibrio();
        experto = new ExpertoCostosYProductoStandar();

        cargarBotones();




    }

    @Override
    public JInternalFrame getPantalla() {
        return pantalla;
    }

    @Override
    public void iniciar() {
        if (!iniciado) {
            ((ControladorPrincipal) FabricaControladores.getInstance().getControlador(FabricaControladores.controladoresNombre.PRINCIPAL)).agregarPantallaInterna(pantalla);
            iniciado = true;
        } else {
            pantalla.toFront();
            pantalla.setVisible(true);
        }
    }

    private void cargarBotones() {
        pantalla.getBtnSalir().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                pantalla.setVisible(false);
            }
        });

        pantalla.getBotonCalcular().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                calcularPuntosPeriodo(pantalla.getMes().getMonth(), pantalla.getAnio().getYear());
            }
        });

        Date fecha = new Date();
        pantalla.getMes().setMonth(fecha.getMonth());
        pantalla.getAnio().setYear(fecha.getYear() + 1900);
        calcularPuntosPeriodo(pantalla.getMes().getMonth(), pantalla.getAnio().getYear());
    }

    private void calcularPuntosPeriodo(Integer mes, Integer anio) {
        DTOPuntoEquilibrio dtoEquilibrioEstandar = experto.calcularPtoEquilibrioEstandar(mes.toString(), anio.toString());
        DTOPuntoEquilibrio dtoEquilibrio = experto.calcularPtoEquilibrio(mes.toString(), anio.toString());

        pantalla.getTextoCantidadEquilibrio().setText(dtoEquilibrio.getPrecioEquilibrio().toString());
        pantalla.getTextoCostoFijo().setText(dtoEquilibrio.getCostoFijoTot().toString());
        pantalla.getTextoCostoVariable().setText(dtoEquilibrio.getCostoVarTotal().toString());
        pantalla.getTextoMontoEquilibrio().setText(dtoEquilibrio.getPrecioEquilibrio().toString());

        pantalla.getTextoCantidadEquilibrioEstandar().setText(dtoEquilibrioEstandar.getCantidadEquilibrio().toString());
        pantalla.getTextoCostoFijoEstandar().setText(dtoEquilibrioEstandar.getCostoFijoTot().toString());
        pantalla.getTextoCostoVariableEstandar().setText(dtoEquilibrioEstandar.getCostoVarTotal().toString());
        pantalla.getTextoMontoEquilibrioEstandar().setText(dtoEquilibrioEstandar.getPrecioEquilibrio().toString());
        pantalla.getTextoPrecioEstandar().setText(dtoEquilibrioEstandar.getPrecioDeVenta().toString());
        pantalla.getTextoProductoEstandar().setText(dtoEquilibrioEstandar.getProdvigente().getProductoStandar().getNombre());


    }
}
